package com.neu.mybatis3.mapper;


import com.neu.mybatis3.pojo.Emp;
import org.apache.ibatis.annotations.*;

import java.time.LocalDate;
import java.util.List;

@Mapper
public interface EmpMapper {



    //根据ID删除数据
    @Delete("delete from emp where id = #{id}")
    public void delete(Integer id);

    //新增员工
    @Options(keyProperty="id",useGeneratedKeys = true)
    @Insert("insert into emp(username,name,gender,image,job,entrydate,dept_id,create_time,update_time) " +
            "values (#{username},#{name},#{gender},#{image},#{job},#{entrydate},#{deptId},#{createTime},#{updateTime})")
    public void insert(Emp emp);

    @Update("update emp set username =#{username},name =#{name},gender =#{gender},image=#{image},job =#{job},entrydate =#{entrydate},dept_id=#{deptId},update_time=#{updateTime} where id = #{id}")
    public void update(Emp emp);

    //动态更新员工

    public void update2(Emp emp);
//    @Select("select * from emp where id = #{id}")
//    public Emp getByID(Integer id);

    @Select("select * from emp where id = #{id}")
    public Emp getByID(Integer id);

    //条件查询员工
//    @Select("select * from emp where name like '%${name}%' and gender = #{gender} and " +
//            "entrydate between #{begin} and #{end} order by update_time desc")
//    public List<Emp> list(String name, short gender, LocalDate begin,LocalDate end);
//    @Select("select * from emp where name like concat('%',#{name},'%') and gender = #{gender} and " +
//            "entrydate between #{begin} and #{end} order by update_time desc")
//    public List<Emp> list(String name, short gender, LocalDate begin,LocalDate end);

    //动态条件查询
    public List<Emp> list(String name, Short gender, LocalDate begin,LocalDate end);

    public List<Emp> list2();

    public void deleteByIds(List <Integer> ids);
}
